package one.stand.service.sys;

import one.stand.dto.DictDto;
import one.stand.model.SysDictValue;

import java.util.List;
import java.util.Map;

public interface SysDictValueService {

    String DEFAULT_COMPANY_KEY = "0";

    DictDto get2(Type type, String name);

    DictDto get2(Type type, TypeName name);

    SysDictValue get(Type type, TypeName name);

    SysDictValue get(Type type, String name);

    SysDictValue getNullDefault(Type type, String companyKey, String name);

    SysDictValue get(Type type, String companyKey, String name);

    List<SysDictValue> getList(Type type, String companyKey);

    Map<String, SysDictValue> getMap(Type type, String companyKey);

    Map<String, SysDictValue> getMapNullDefault(Type type, String companyKey);

    boolean isOn(Type type, TypeName name);

    boolean isOn(Type type, String name);

    enum Type {
        VERSION, IPAD_CONFIG, default_company_key,
        VERSION_CRM_APP,
        VERSION_CRM,
        VERSION_JXS_APP,
        SIGN,
        /**
         * 微信客服
         */
        WX_KF,
        /**
         * 配置-登录
         */
        CONFIG_LOGIN,
        /**
         * 配置-模板
         */
        CONFIG_TEMPLATE,
        /**
         * 配置-通用
         */
        CONFIG,
        /**
         * 用户名密码登录
         */
        SECURITY_PASSWD,
        /**
         * 直播分类列表
         */
        LIVE_TYPE,
        /**
         * 直播小程序开关
         */
        LIVE_OPEN,
        /**
         * 搜索
         */
        SEARCH,
        /**
         * crm app配置
         */
        CRM_APP,
        ;
    }

    enum TypeName {
        CRM_APP, IPAD_WXLOGIN, default_company_key, SIGN,
        /**
         *
         */
        CONFIG_LOGIN_WX,
        /**
         * 企业太阳码logo
         */
        suncode_company_logo,
        /**
         * 短信验证码通知人
         */
        SMS_JXS_TICKET_SAVE,
        /**
         * 短信验证码通知人
         */
        SMS_JXS_SIGN,
        /**
         * 评论开关-小程序
         */
        COMMENT_SWITCH_USER,
        /**
         * 评论开关-App
         */
        COMMENT_SWITCH_APP,
        /**
         * 搜索：关键词
         */
        SEARCH_KEYWORD,
    }

    enum TypeNameWxKf {

        /**
         * 微信客服-APP下载URL、APP图片
         */
        APP_DOWNLOAD_URL,
        /**
         * 微信客服-标题、内容
         */
        MESSAGE,
    }

    enum TypeNameTemplate {
        PREVIEW_CARD_ID,
        PREVIEW_GOODS_ID,
        PREVIEW_ARTICLE_ID,
        PREVIEW_DIY_URL,
        PREVIEW_ROOM_ID,
        PREVIEW_GROUP_ID,
    }

    enum TypeNameConfig {
        crm_pc_url,
        article_h5,
    }
}
